broadway: Extract buffer decoding to separate helper
authorAlexander Larsson <alexl@redhat.com>
Fri, 8 Nov 2013 09:13:12 +0000 (10:13 +0100)
committerAlexander Larsson <alexl@redhat.com>
Fri, 8 Nov 2013 12:44:00 +0000 (13:44 +0100)
gdk/broadway/broadway.js

index 90e7eb09c7a06405eb248a663719140b2a407ea0..f7ce6990b153554492bf654c85eec54342d5c0b3 100644 (file)
@@ -329,13 +329,10 @@ function copyRect(src, srcX, srcY, dest, destX, destY, width, height)
     }
 }
 
-function cmdPutBuffer(id, w, h, compressed)
+function decodeBuffer(context, oldData, w, h, data)
 {
-    var surface = surfaces[id];
-    var context = surface.canvas.getContext("2d");
-    var imageData = context.createImageData(w, h);
-    var oldData = surface.imageData;
     var i, j;
+    var imageData = context.createImageData(w, h);
 
     if (oldData != null) {
         // Copy old frame into new buffer
@@ -345,9 +342,6 @@ function cmdPutBuffer(id, w, h, compressed)
     var src = 0;
     var dest = 0;
 
-    var inflate = new Zlib.RawInflate(compressed);
-    var data = inflate.decompress();
-
     while (src < data.length)  {
         var b = data[src++];
         var g = data[src++];
@@ -442,6 +436,20 @@ function cmdPutBuffer(id, w, h, compressed)
         }
     }
 
+    return imageData;
+}
+
+
+function cmdPutBuffer(id, w, h, compressed)
+{
+    var surface = surfaces[id];
+    var context = surface.canvas.getContext("2d");
+
+    var inflate = new Zlib.RawInflate(compressed);
+    var data = inflate.decompress();
+
+    var imageData = decodeBuffer (context, surface.imageData, w, h, data);
+
     context.putImageData(imageData, 0, 0);
     surface.imageData = imageData;
 }